package innova.negocio;

import innova.dao.CentroFormacionDAO;
import innova.modelo.CentroFormacion;
import innova.modelo.Idea;
import innova.modelo.Usuario;

import java.util.Collection;

public class GestionCentroFormacion {

	private CentroFormacionDAO dao = new CentroFormacionDAO();
	
	public Collection<CentroFormacion> buscarPorTitulo(String nombreCentroFormacion)
			throws Exception {
		return dao.buscarPorNombre(nombreCentroFormacion);
	}

	public CentroFormacion insertar(String nombreCentroFormacion, 
			String tipoCentroFormacion, 
			String urlCentroFormacion, 
			String logoCentroFormacion)
					throws Exception {
		CentroFormacion vo = new CentroFormacion();
		vo.setNombreCentroFormacion(nombreCentroFormacion);
		vo.setTipoCentroFormacion(tipoCentroFormacion);
		vo.setUrlCentroFormacion(urlCentroFormacion);
		vo.setLogoCentroFormacion(logoCentroFormacion);
		
		return dao.insertar(vo);
	}

	public CentroFormacion obtener(int idIdea) throws Exception {
		return dao.obtener(idIdea);
	}

	public void eliminar(int idIdea) throws Exception {
		dao.eliminar(idIdea);
	}

	public CentroFormacion actualizar(int idCentroFormacion,
			String nombreCentroFormacion, 
			String tipoCentroFormacion, 
			String urlCentroFormacion, 
			String logoCentroFormacion)
					throws Exception {
		CentroFormacion vo = new CentroFormacion();
		vo.setIdCentroFormacion(idCentroFormacion);
		vo.setNombreCentroFormacion(nombreCentroFormacion);
		vo.setTipoCentroFormacion(tipoCentroFormacion);
		vo.setUrlCentroFormacion(urlCentroFormacion);
		vo.setLogoCentroFormacion(logoCentroFormacion);

		return dao.actualizar(vo);
	}
	
	public Collection<CentroFormacion> listar() throws Exception {
		return dao.listar();
	}
	
	public int obtenerCantidadIdea(int idCentroFormacion) throws Exception {
		int cantidad = 0;
		
		GestionUsuario daoUsuario = new GestionUsuario();
		Collection<Usuario> listaUsuario = daoUsuario.buscarPorCentroFormacion(idCentroFormacion);
		for(Usuario itemUsuario : listaUsuario) {
			GestionIdea daoIdea = new GestionIdea();
			Collection<Idea> listaIdea = daoIdea.buscarPorUsuario(itemUsuario.getIdUsuario());
			cantidad += listaIdea.size();
		}
		
		return cantidad;
	}
	
	public Collection<CentroFormacion> buscarPorUrl(String urlCentroFormacion)
			throws Exception {
		return dao.buscarPorUrl(urlCentroFormacion);
	}
	
	public Collection<CentroFormacion> buscarReporte(String nombreCentroFormacion, String tipoCentroFormacion)
			throws Exception {
		return dao.buscarReporte(nombreCentroFormacion, tipoCentroFormacion);
	}
	
}
